﻿//#include <iostream>
//#include <assert.h>
//using namespace std;
//
//class Date
//
//{
//
//public:
//
//	// 获取某年某月的天数
//
//	int GetMonthDay(int year, int month) {
//		assert(month < 13 && month>0);
//		int MonthDay[13] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };
//		if (month == 2 && (year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
//			return 29;
//		}
//		else {
//			return MonthDay[month];
//		}
//		
//	}
//
//
//
//	// 全缺省的构造函数
//
//	Date(int year = 1900, int month = 1, int day = 1) {
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//
//
//
//	// 拷贝构造函数
//
//  // d2(d1)
//
//	Date(const Date& d) {
//		_year = d._year;
//		_month = d._month;
//		_day = d._day;
//	}
//
//
//
//	// 赋值运算符重载
//
//  // d2 = d3 -> d2.operator=(&d2, d3)
//
//	Date& operator=(const Date& d) {
//		_year = d._year;
//		_month = d._month;
//		_day = d._day;
//		return *this;
//	}
//
//
//
//	// 析构函数
//
//	//~Date();
//
//
//
//	// 日期+=天数
//
//	Date& operator+=(int day) {
//		if (day < 0) {
//			return *this -= -day;
//		}
//		_day += day;
//		while (_day > GetMonthDay(_year, _month)) {
//			_day -= GetMonthDay(_year, _month);
//			++_month;
//		}
//		if (_month == 13)
//		{
//			++_year;
//			_month = 1;
//		}
//		return *this;
//	}
//
//
//
//	// 日期+天数
//
//	Date operator+(int day) {
//		Date tmp = *this;
//		tmp += day;
//		return tmp;
//	}
//
//
//
//	// 日期-天数
//
//	Date operator-(int day) {
//		Date tmp = *this;
//		tmp -= day;
//		return tmp;
//	}
//
//
//
//	// 日期-=天数
//
//	Date& operator-=(int day) {
//		if (day < 0) {
//			return *this += -day;
//		}
//		_day -= day;
//		while (_day <= 0) {
//			--_month;
//			_day += GetMonthDay(_year, _month);
//			if (_month == 0) {
//				_month == 12;
//				--_year;
//			}
//
//		}
//		return *this;
//	}
//
//
//
//	// 前置++
//
//	Date& operator++() {
//		*this += 1;
//		return *this;
//	}
//
//
//
//	// 后置++
//
//	Date operator++(int) {
//		Date tmp = *this;
//		*this += 1;
//		return tmp;
//	}
//
//
//
//	// 后置--
//
//	Date operator--(int) {
//		Date tmp = *this;
//		*this -= 1;
//		return tmp;
//	}
//
//
//
//	// 前置--
//
//	Date& operator--() {
//		*this -= 1;
//		return *this;
//	}
//
//
//
//	// >运算符重载
//
//	bool operator>(const Date& d) {
//		if (_year < d._year)return false;
//		if (_month < d._month)return false;
//		if (_day < d._day)return false;
//		return true;
//	}
//
//
//
//	// ==运算符重载
//
//	bool operator==(const Date& d) {
//		if (_year == d._year && _month == d._month && _day == d._day)return true;
//		return false;
//	}
//
//
//
//	// >=运算符重载
//
//	bool operator >= (const Date& d) {
//		if ((*this == d) || (*this > d))return true;
//		return false;
//	}
//
//
//
//	// <运算符重载
//
//	bool operator < (const Date& d) {
//		if (!(*this >= d))return true;
//		return false;
//	}
//
//
//
//	// <=运算符重载
//
//	bool operator <= (const Date& d) {
//		if ((*this == d) || (*this < d))return true;
//		return false;
//	}
//
//
//
//	// !=运算符重载
//
//	bool operator != (const Date& d) {
//		if (!(*this == d))return true;
//		return false;
//	}
//
//
//
//	// 日期-日期 返回天数
//
//	int operator-(const Date& d) {
//		Date max = *this;
//		Date min = d;
//		int flag = 1;
//		if (*this < d) {
//			max = d;
//			min = *this;
//			flag = -1;
//		}
//		int n = 0;
//		while (min != max) {
//			++min;
//			++n;
//		}
//		return n * flag;
//	}
//	void Print() {
//		cout << _year << "/" << _month << "/" << _day << endl;
//	}
//
//private:
//
//	int _year;
//
//	int _month;
//
//	int _day;
//
//};
//
//
//void TestDate1()
//{
// // 这⾥需要测试⼀下⼤的数据+和-
//		Date d1(2024, 4, 14);
//	Date d2 = d1 + 30000;
//	 d1.Print();
// d2.Print();
//
//	 Date d3(2024, 4, 14);
// Date d4 = d3 - 5000;
//d3.Print();
//	 d4.Print();
//
//	Date d5(2024, 4, 14);
//	 d5 += -5000;
//	 d5.Print();
// }
//
// //void TestDate2()
// //{
//	// Date d1(2024, 4, 14);
//	//Date d2 = ++d1;
//	// d1.Print();
//	// d2.Print();
//	//
//	//	 Date d3 = d1++;
//	// d1.Print();
//	// d3.Print();
//	//
//	//	 /*d1.operator++(1);
//	//	 d1.operator++(100);
//	//	 d1.operator++(0);
//	//	 d1.Print();*/
//	//	 }
//
// //void TestDate3()
// //{
//	// Date d1(2024, 4, 14);
//	// Date d2(2034, 4, 14);
//	//
//	//	 int n = d1 - d2;
//	// cout << n << endl;
//	//
//	//	n = d2 - d1;
//	// }
//
// //void TestDate4()
// //{
//	// Date d1(2024, 4, 14);
//	// Date d2 = d1 + 30000;
//	//
//	//	 // operator<<(cout, d1)
//	//	 cout << d1;
//	// cout << d2;
//	//
//	//	360 cin >> d1 >> d2;
//	// cout << d1 << d2;
//	// }
//
// //void TestDate5()
// //{
//	//const Date d1(2024, 4, 14);
//	// d1.Print();
//	//
//	//	 //d1 += 100;
//	//	 d1 + 100;
//	//
//	//	 Date d2(2024, 4, 25);
//	// d2.Print();
//	//
//	//	 d2 += 100;
//
//	//	 d1 < d2;
// //d2 < d1;
//	// }
//
//
//
//
//int main() {
//	TestDate1();
//	return 0;
//}
//
//
//
//
//
//
//
//
//
//
//
//
//
//
